Cette section décrit la commande uxset var (UXSETVAR sous OS/400) qui permet de reconduire la valeur des variables au sein d'une session.
La reconduction de la valeur des variables au sein d’une session n’est pas automatique. Par défaut, si rien n’est fait, la valeur de la variable n’est pas reconduite et l’automate applique les règles de valorisation par défaut. La reconduction de la valeur peut être demandée en exécutant la commande uxset var (UXSETVAR sous OS/400) dans le C.L. de l’Uproc ou dans le post-traitement (U_POST_UPROC).
La commande uxset var permet de reconduire la valeur des variables au sein de la session. Trois types de reconduction peuvent être demandées :
En exécutant la commande uxset var sans autre complément ou uxset var level ALL, pour reconduire les valeurs des variables de l’Uproc parent connues de l’Uproc enfant (les valeurs reconduites sont les valeurs connues au début de l'exécution de l'Uproc parent).
En exécutant la commande uxset var level INTER, pour reconduire les valeurs des variables reçues par l’Uproc parent et connues de l'Uproc enfant. Cette commande ne peut donc pas être exécutée dans une Uproc d'entête.
En spécifiant dans la commande uxset var les variables qui doivent être reconduites et éventuellement leur nouvelle valeur.
La reconduction des variables au sein d'une session est assurée par l'exécution de la commande. Si l'Uproc suivante dans la session n'est pas exécutée par l'automate (par exemple parce qu'elle est définie comme une tâche optionnelle), Dollar Universe transmet alors les variables à l'Uproc immédiatement suivante.
La syntaxe de cette commande est la suivante :
uxset var [level ALL | level INTER]|[var[=val] var[=val] ...]
Description des items
level ALL | level INTER
(Optionnel) De façon globale, spécifie le type de reconduction :
level ALL : pour reconduire les valeurs des variables de l’Uproc parent connues de l’Uproc enfant (les valeurs reconduites sont les valeurs connues au début de l'exécution de l'Uproc parent).
Défaut : level ALL
VAR=VAL
VAR est le nom de la variable et VAL la valeur associée qui sera transmise à l’Uproc enfant.
Sous UNIX/Linux, le nom des variables ne doit pas commencer pas un chiffre (restriction du système d’exploitation).
Les guillemets " " encadrant une chaîne sont requis pour conserver les caractères espace dans la chaîne; si la chaîne ne contient pas d'espace ils sont inutiles. par exemple :
uxset var VARDATE=2010/11/30 VARTXT="TEST TEST" VARNUM=555
Exemples
Pour reconduire toutes les variables de l'Uproc parent connues de l'Uproc enfant :
uxset var
Exemple 1
Trois Uprocs A, B, C ayant les mêmes variables par défaut : Var1, Var2, Var3.
L'Uproc A a un script contenant la commande : uxset var level ALL
L'Uproc B a un script contenant la commande : uxset var level INTER
L'Uproc C a un script qui affiche la valeur des variables.
Dans ce cas, le script affiche les valeurs de Var1, Var2 et Var3 de l'Uproc A, qui ont été transmises à l'Uproc B par la commande "uxset var level ALL", puis passées à l'Uproc C par la commande "uxset var level INTER".
La commande "uxset var level INTER" ne reporte que les informations transmises par une Uproc parent. Le report peut être cascadé sur plusieurs Uprocs par la commande "uxset var level INTER".
Exemple 2
Trois Uprocs X, Y, Z.
Variables de l'Uproc X: Var1=Val1x, Var2=Val2x, Var3=Val3x
Variables de l'Uproc Y: Var1=Val1y, Var2=Val2y, Var3=Val3y
Variables de l'Uproc Z: Var1=Val1z, Var2=Val2z, Var3=Val3z
Toutes ont les mêmes valeurs par défaut: Var1=Val1, Var2=Val2, Var3=Val3
L'Uproc X a un script contenant la commande : uxset var Var1=NewValue
L'Uproc Y a un script contenant la commande : uxset var level INTER
L'Uproc Z a un script qui affiche la valeur des variables.
Dans ce cas, le script affiche les valeurs NewValue, Val2z et Val3z. Dans ce cas, l'Uproc X a transmis NewValue à l'Uproc Y, et NewValue a été reportée dans l'Uproc Z par la commande "uxset var level INTER".
Récupérer des variables sous OS/400
Les variables ne sont pas récupérées implicitement dans les programmes OS/400 classiques. La commande UXGETVAR permet de récupérer la valeur d'une variable passée par une commande UXSETVAR ou UXORDRE dans une variable DCL.
UXGETVAR VAR('UPRWRD') DCLVAR(&VARVALUE)
Cette commande doit être utilisée dans un CL. Elle accepte deux paramètres :
En qsh, la variable var est directement utilisable dans la variable $var du shell.